package com.ruoyi.staff.service;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.staff.domain.StaffBaseinfo;
import com.ruoyi.staff.domain.StaffContract;

/**
 * 员工基础信息Service接口
 * 
 * @author bzs
 * @date 2021-08-22
 */
public interface IStaffBaseinfoService 
{
    /**
     * 查询员工基础信息
     * 
     * @param stfId 员工基础信息ID
     * @return 员工基础信息
     */
    public StaffBaseinfo selectStaffBaseinfoById(Long stfId);

    /**
     * 查询员工基础信息列表
     * 
     * @param staffBaseinfo 员工基础信息
     * @return 员工基础信息集合
     */
    public List<StaffBaseinfo> selectStaffBaseinfoList(StaffBaseinfo staffBaseinfo);

    /**
     * 查询员工基础信息列表
     *
     * @param stfIds 员工基础信息
     * @return 员工基础信息集合
     */
    public List<StaffBaseinfo> selectStaffBaseinfoListByIds(String[] stfIds);

    /**
     * 新增员工基础信息
     * 
     * @param staffBaseinfo 员工基础信息
     * @return 结果
     */
    public int insertStaffBaseinfo(StaffBaseinfo staffBaseinfo);

    /**
     * 修改员工基础信息
     * 
     * @param staffBaseinfo 员工基础信息
     * @return 结果
     */
    public int updateStaffBaseinfo(StaffBaseinfo staffBaseinfo);

    /**
     * 批量删除员工基础信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteStaffBaseinfoByIds(String[] ids);

    /**
     * 删除员工基础信息信息
     * 
     * @param stfId 员工基础信息ID
     * @return 结果
     */
    public int deleteStaffBaseinfoById(Long stfId);

    /**
     * 导入员工合同关系
     * @param lists
     * @param updateSupport
     * @param sysUser
     * @return
     */
    public String importcontractRelations(List<StaffBaseinfo> lists, boolean updateSupport, SysUser sysUser);

    /**
     *校验Excel数据是否满足条件
     * @param lists
     * @return
     */
    public String validateDatas(List<StaffBaseinfo> lists);

    /**
     * 根据证件号判断该证件号是否已存在
     * @param idCard
     * @return
     */
    public boolean checkStaffExist(String idCard);
}
